---

# Проверяем существование директории с данными
- name: etcd-configure get data directory stat
  stat: 
    path: "{{ etcd_data }}/member"
  register: etcd_data_stat
  become: True
  tags: [etcd-configure]

# Если директория из переменной etcd_data не существует
# Выключаем сервис etcd, возможно оставшийся от предыдущей настройки
- name: etcd-configure stop previus service
  systemd:
    name: "{{ etcd_service }}"
    state: "stopped"
    enabled: True
  become: True
  become_user: "root"
  when: 'not etcd_data_stat.stat.exists'
  tags: [etcd-configure]

# Копируем файл сервиса
- name: etcd-configure check service
  template:
    src: "{{ etcd_service_source }}"
    dest: "/etc/systemd/system/{{ etcd_service }}"
    owner: "root"
    group: "root"
    mode: "0644"
  become: True
  when: 'not etcd_service_default | default(False)'
  tags: [etcd-configure]

- name: etcd-configure daemon-reload
  systemd:
    daemon_reload: True
  become: True
  tags: [etcd-configure]

# Проверяем и создаем директорию с данными
- name: etcd-configure check data directory
  file:
    path: "{{ item.path }}"
    state: "directory"
    mode: "{{ item.mode }}"
    owner: "{{ item.owner }}"
    group: "{{ item.owner }}"
  become: True
  loop:
    - {mode: "755", owner: "etcd", path: "{{ etcd_data }}"}
  tags: [etcd-configure]

# Проверяем и создаем директорию с конфигурационным файлом
- name: etcd-configure check config directory
  file:
    path: "{{ item.path }}"
    state: "directory"
    mode: "{{ item.mode }}"
    owner: "{{ item.owner }}"
    group: "{{ item.owner }}"
  become: True
  loop:
    - {mode: "755", owner: "etcd", path: "/etc/etcd"}
  tags: [etcd-configure]

# Копируем из шаблона новый конфигурационный файл
- name: etcd-configure check config
  template:
    src: "{{ etcd_config_source }}"
    dest: "{{ etcd_config }}"
    owner: "etcd"
    group: "etcd"
    mode: "644"
  become: True
  become_user: "root"
  tags: [etcd-configure]

# Останавливаем сервис etcd. Выполнение только по тэгу
- name: etcd-configure stop
  systemd:
    name: "{{ etcd_service }}"
    state: "stopped"
    enabled: True
  become: True
  become_user: "root"
  tags: [never, etcd-stop]

# Запускаем сервис etcd
- name: etcd-configure start
  systemd:
    name: "{{ etcd_service }}"
    state: "started"
    enabled: True
  become: True
  become_user: "root"
  tags: [etcd-configure, etcd-start]
